Java处理高并发,大数据,多线程,分布式这些都会产生一个严重的后果,如何保证线程安全和数据的一致性成为重中之重。为了实现这点就不得不使用到了锁机制,java提供了4种常见的锁机制,当然其中Synchronized是最常见和常用的,jdk的很多线程安全类都用Synchronized实现,关于Synchronized可以见之前的文章《java同步锁(synchronized)机制再总结》,但是没有涉及到Synchronized的锁升级机制问题。
Lock(ReentrantLock)
例子
private static Lock lock = newReentrantLock();
public void fun()
{
lock.lock();
System.out.println(Thread.currentThread().getName());
System.out.println(servId+"object"+index+"funstart");
System.out.println(servId+"object"+index+"funend");
lock.unlock();
}
多线程调用fun时会串行化保证线程安全。注意lock为静态成员,是的,就是这么简单,你就能使用比较高大上的lock机制了,ReentrantLock有两个